#ifndef __TERRAIN_H__
#define __TERRAIN_H__

#include <string>
#include <vector>

#include "Random.h"
#include "Range.h"


/**
 *  @file
 *  Class "Terrain"
 */


/**
 * A structure used for the encounter table
 */
struct			t_encounter
{
	Range		m_roll;
	std::string	m_strMonsterName;
};


/**
 * class Terrain
 * It is used to give a specificity to a MapCell
 */
class Terrain
{
public:
	Terrain();
	~Terrain();
	void						setName(std::string newName);
	std::string					getName();
	void						addRandomEncounter(int rollLow, int rollHigh, char* npcName);
	void						print();
	std::string					getRandomEncounter();

private:
	std::string					m_strName;			//!< Name of the Terrain
	std::vector<t_encounter*>	m_encounterTable;	//!< Encounter Table which is used when a random encounter is specified on the map
};

#endif // __TERRAIN_H__